With the proliferation of distributed computing technologies such as GRID, Jini, JXTA and Web Services, there is an increasing need for distributed clients to update one another with rapidly changing information. In packet-based networks this requires that packets are sent to multiple addressees. Many other scenarios also require the distribution of packets to multiple addressees (such as for example the one-to-many distribution of voice-over-IP telephony packets from a conferencing server to multiple recipients of the conference voice stream).
Packets sent to a number of addresses over packet-based networks can be sent individually to multiple addressees (each stream being a unicast stream), as a multicast stream in which packets are replicated and distributed to group members at router level, or as a broadcast stream in which every node on the network receives the packets.
Broadcast and multicast are disabled by default in many routers in order to reduce network traffic due to abuse of multicast and broadcast facilities. This means that in cases where packets need to be sent to multiple addressees the only viable method of doing so is to implement a multiple unicast session. Each packet is replicated by the sender and processed by the sender's routing stack once for each address.
A difficulty with this method of operation is that the processing requirements are magnified at the sender side. When there are many addressees the amount of processing required in the routing stack of the sender can be prohibitive or can adversely affect other tasks in the sender's computer.
Such problems can be exacerbated in devices with reduced processing power. Many mobile devices (such as notebook computers, personal digital assistants (PDAs), mobile phones, media players and cameras) are provided with network capabilities but for cost and size reasons have reduced processing abilities relative to standard PCs. Nevertheless it is increasingly the case that such devices will form part of dynamically created network groups—for example using a PDA to access printers, scanners, servers, etc. provided on a network. Such network groups may require packets to be distributed to all group members in a multicast or multiple unicast manner, and this may prove unduly onerous for the processing abilities of such a mobile device.
Devices which process voice data for telephone calls require the processing time to be minimised to reduce the loss of voice quality associated with increased processing times.